package com.knowledgegraph.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.knowledgegraph.entity.RelationType;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 关系类型Mapper接口
 */
@Mapper
public interface RelationTypeMapper extends BaseMapper<RelationType> {

    /**
     * 获取所有启用的关系类型
     * 
     * @return 关系类型列表
     */
    List<RelationType> selectEnabledTypes();
    
    /**
     * 检查类型代码是否已存在
     * 
     * @param typeCode 类型代码
     * @param excludeId 排除的ID（用于更新时检查）
     * @return 存在的数量
     */
    Integer checkTypeCodeExists(@Param("typeCode") String typeCode, @Param("excludeId") Long excludeId);
    
    /**
     * 获取用户创建的关系类型
     * 
     * @param userId 用户ID
     * @return 关系类型列表
     */
    List<RelationType> selectUserTypes(@Param("userId") Long userId);
    
    /**
     * 更新排序序号
     * 
     * @param id 类型ID
     * @param sortOrder 排序序号
     * @return 影响的行数
     */
    Integer updateSortOrder(@Param("id") Long id, @Param("sortOrder") Integer sortOrder);
    
    /**
     * 更新启用状态
     * 
     * @param id 类型ID
     * @param enabled 启用状态
     * @return 影响的行数
     */
    Integer updateEnabled(@Param("id") Long id, @Param("enabled") Boolean enabled);
}